home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 09 - 1993 / 09.07 Jul 93 / Bedrock Header Files / Support Includes / BRSupDef.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-04-19  |  6.8 KB  |  232 lines  |  [TEXT/MPS ]

  1. /*========================================================================================
  2. /      File:            BRSupDef.h
  3. /      Release Version:    $ 1.0d1 $
  4. /      Creation Date:    August 1989
  5. /      COPYRIGHT 1989-1993 SYMANTEC CORPORATION. ALL RIGHTS RESERVED. UNPUBLISHED -- RIGHTS
  6. /      RESERVED UNDER THE COPYRIGHT LAWS OF THE UNITED STATES. USE OF COPYRIGHT NOTICE IS
  7. /      PRECAUTIONARY ONLY AND DOES NOT IMPLY PUBLICATION OR DISCLOSURE.
  8. /      THIS SOFTWARE Contains_LOOK PROPRIETARY AND CONFIDENTIAL INFORMATION OF SYMANTEC
  9. /      CORPORATION. USE, DISCLOSURE, OR REPRODUCTION IS PROHIBITED WITHOUT THE PRIOR
  10. /      EXPRESS WRITTEN PERMISSION OF SYMANTEC CORPORATION.
  11. /      RESTRICTED RIGHTS LEGEND
  12. /      Use, duplication, or disclosure by the Government is subject to restrictions as Set_LOOK
  13. /      forth in subparagraph (c)(l)(ii) of the Rights in Technical Data and Computer
  14. /      Software clause at DFARS 252.227-7013. Symantec Corporation, 10201 Torre Avenue,
  15. /      Cupertino, CA 95014.
  16. /=======================================================================================*/
  17.  
  18. /*--------------------------------------------------------------------------------------
  19. //    This file is part of the old international implementation.
  20. //    The Bedrock team is in the process of designing a totally new approach.
  21. //    For more details on the new approach please look in the 
  22. //    "…:BEDROCK:INTL:INCLUDES:" folder.
  23. //    The new approach departs from the close tie to characters and characterSets.
  24. //    Instead it bases all internationalization efforts on locale based
  25. //    characters, and character sets, with Unicode as the central set.
  26. /--------------------------------------------------------------------------------------*/
  27.  
  28.  
  29. #ifndef BRSUPDEF_H
  30. #define BRSUPDEF_H
  31.  
  32. #ifndef BRSTDDEF_H
  33. #include "BRStdDef.h"
  34. #endif
  35.  
  36. #if defined(BR_BUILD_WIN)  && !defined(_INC_WINDOWS)
  37. #include <windows.h>
  38. #endif    
  39.  
  40. #if defined(BR_BUILD_MAC) && !defined(BRMACWIN_H)
  41. #include <BRMacWin.h>
  42. #endif    
  43.  
  44.  
  45. /*
  46.    Windows and Mac versions of Zortech each have their own quirks,
  47.    so we want to be able to tell which one we're using
  48. */
  49. #if defined BR_BUILD_WIN && defined __ZTC__
  50. #ifndef __ZTCWIN__
  51. #define __ZTCWIN__ __ZTC__
  52. #endif
  53. #endif
  54.  
  55.  
  56. #ifdef __cplusplus
  57.   extern "C" {
  58. #endif
  59.  
  60. #ifdef BR_BUILD_MAC
  61. #ifndef far
  62. #define far
  63. #endif
  64. #ifndef near
  65. #define near
  66. #endif
  67. #define PASCAL
  68. #define cdecl
  69. #define huge
  70. #define _cdecl
  71. #define CALLBACK
  72. #endif
  73.  
  74. #ifdef BR_BUILD_WIN
  75. #define PASCAL              pascal
  76. #define CALLBACK            _far _pascal
  77. #endif
  78.  
  79. #ifndef NOMINMAX
  80.  
  81. #ifndef max
  82. #define max(a,b)            (((a) > (b)) ? (a) : (b))
  83. #endif
  84.  
  85. #ifndef min
  86. #define min(a,b)            (((a) < (b)) ? (a) : (b))
  87. #endif
  88. #endif
  89.  
  90. #ifdef BR_BUILD_WIN
  91. #define BR_EXPORTENTRY(t)  t FAR PASCAL
  92. #define BR_INTERNALENTRY       NEAR
  93. #define BR_FASTENTRY     BR_EXPORTENTRY
  94. #define EXPENTRY(t)    t FAR PASCAL
  95. #define BR_INDIRECTENTRY       _pascal far
  96. #define BR_INDIRECTENTRY2      FAR pascal
  97. #endif
  98.  
  99. #ifdef BR_BUILD_MAC
  100. #define BR_EXPORTENTRY(t)  t
  101. #define BR_INTERNALENTRY
  102. #define BR_FASTENTRY   BR_EXPORTENTRY
  103. #define EXPENTRY(t)    t
  104. #define BR_INDIRECTENTRY
  105. #define BR_INDIRECTENTRY2
  106. #define near
  107. #define far
  108. #define FAR                 far
  109. #define NEAR                near
  110. #define LONG                long
  111. #define VOID                void
  112. #endif
  113.  
  114.  
  115. typedef unsigned short BR_SEL;  /*SELectors are similar to segments*/
  116.  
  117. /* Create_LOOK untyped far pointer from selector and Offset_LOOK */
  118. #define BR_MAKEP(sel, off)     ((void FAR *)BR_MAKEULONG(off, sel))
  119.  
  120. /* Extract selector or Offset_LOOK from far pointer */
  121. #define BR_SELECTOROF(p)       (((unsigned short FAR *)&(p))[1])
  122. #define BR_OFFSETOF(p)     (((unsigned short FAR *)&(p))[0])
  123.  
  124. /* Cast any variable to an instance of the specified type. */
  125. #define BR_MAKETYPE(v, type)   (*((type far *)&v))
  126.  
  127. /* Calculate the byte Offset_LOOK of a field in a structure of type type. */
  128. #define BR_FIELDOFFSET(type, field)    ((short)&(((type *)0)->field))
  129.  
  130. /* Combine l & h to form a 32 bit quantity. */
  131. #define BR_MAKEULONG(l, h)  ((unsigned long)(((unsigned short)(l)) | (((unsigned long)((unsigned short)(h))) << 16)))
  132.  
  133. /* Combine l & h to form a 16 bit quantity. */
  134. #define BR_MAKEUSHORT(l, h) (((unsigned short)(l)) | (((unsigned short)(h)) << 8))
  135. #define BR_MAKESHORT(l, h)  ((short)MAKEUSHORT(l, h))
  136.  
  137. /* Extract high and low order parts of 16 and 32 bit quantity */
  138. #define BR_LOUCHAR(w)  ((unsigned char)(w))
  139. #define BR_HIUCHAR(w)  ((unsigned char)(((unsigned short)(w) >> 8) & 0xff))
  140. #define BR_LOUSHORT(l) ((unsigned short)(l))
  141. #define BR_HIUSHORT(l) ((unsigned short)(((unsigned long)(l) >> 16) & 0xffff))
  142.  
  143.  
  144.  
  145. typedef BR_Float FAR * BR_FloatPtr;
  146. #define BR_FLOAT_MAX10EXP 308
  147. #define BR_FLOAT_MIN10EXP (-307)
  148.  
  149.  
  150. typedef long                    BR_StringCharacter;
  151. typedef char FAR*               BR_StringPtr;
  152. typedef unsigned short          BR_UnicodeCharacter;
  153. typedef unsigned short FAR *    BR_UnicodeString;
  154.  
  155. #ifdef Bierman
  156. /* Types use for passing & returning polymorphic values */
  157. typedef unsigned short WPARAM;
  158. typedef long LPARAM;
  159. typedef long LRESULT;
  160. #endif
  161.  
  162.  
  163. #ifdef BR_BUILD_MAC
  164. typedef unsigned short      HFILE;
  165. #endif
  166.  
  167. typedef unsigned char FAR * BR_PascalString;        /*Length byte string - pascal string*/
  168. typedef  char FAR * BR_AnsiString;        /*zero terminated string*/
  169. typedef  char FAR * BR_BedString;      /*Zero terminated pascal string*/
  170. typedef const  char FAR * BR_AnsiStringConst; /*Constant BR_AnsiString*/
  171. typedef const unsigned char FAR * BR_PascalStringConst; /*Constant BR_PascalString*/
  172. typedef const  char FAR * BR_StringConst; /*Constant BR_StringPtr*/
  173.  
  174.  
  175. /* These macros get a character into a singular form from a BR_StringPtr pointer */
  176.  
  177. #define BR_GetSBCSStringCharacter(p) (BR_MAKEULONG(((unsigned short)(*((unsigned char FAR *)(p)))),0))
  178.  
  179. #ifdef BR_BUILD_WIN
  180. #define BR_GetDBCSStringCharacter(p) (BR_MAKEULONG(0,BR_MAKEUSHORT((*(((unsigned char FAR *)(p))+1)),(*((unsigned char FAR *)(p))))))
  181. #endif
  182.  
  183. #ifdef BR_BUILD_MAC
  184. #define BR_GetDBCSStringCharacter(p) (BR_MAKEULONG(((unsigned short)(*((unsigned short FAR *)(p)))),0))
  185. #endif
  186.  
  187. #ifndef BUILD_DBCS
  188. #define BR_GetStringCharacter(p) BR_GetSBCSStringCharacter(p)
  189. #endif
  190.  
  191. typedef enum
  192.    {
  193.    BR_SysErr_kNoError,
  194.    BR_SysErr_kError,
  195.    BR_SysErr_kFastBaseNotSet,
  196.    BR_SysErr_kFastDateTimeOverflow,
  197.    BR_SysErr_kClockError,
  198.    BR_SysErr_kInvalidDateTimeStructure
  199.    } BR_SystemError;
  200.  
  201. #define BR_MAXIMUM_PROCESS_IDS 256
  202.  
  203. typedef long BR_VMHandle;
  204.  
  205. typedef long (BR_INDIRECTENTRY2 * PFNWP) ();
  206.  
  207. /* Used in BRWFile.C - I still question it's usage */
  208.  
  209. #define BR_MAXIMUM_FILE_STRINGLENGTH    128 /*I really question this - RAB (either 256-BR_BEDSTRING_OVERHEAD or 65536-BR_BEDSTRING_OVERHEAD) */
  210. #define BR_MAX_FONT_SIZES  20
  211.  
  212.  
  213. typedef BR_VMHandle BR_FileHandle;     /*This is a cookie of no meaning to anyone else*/
  214.  
  215. /* bedrock resource ids */
  216. #define BR_OVERWRITE   1
  217. #define BR_NOWRITE     2
  218. #define BR_CUSTOM      3
  219. #define BR_ILLFNM      4
  220.  
  221. #ifdef __cplusplus
  222.    }
  223. #endif
  224.  
  225. #endif
  226.